#ifndef MULTICLASSSVM__H__
#define MULTICLASSSVM__H__
#include "Macros.h"
#include "Stroke.h"
#include "BinarySVM.h"

class MultiClassSVM
{
private:
	CTrainVector **m_arrayVec;
	int m_numOfClass;
	int m_numOfVector;
	int m_dimensionOfVec;
	double m_sigma, m_C;
	char m_strPath[200];
	BinarySVM *m_svmData;
	int m_numOfSVM;
public:
	MultiClassSVM(){m_arrayVec = 0;m_svmData = 0;}//NULL
	void LoadAllData(char *strInputDataPath, char *strSVMDataPath);
	void ReadData(char *strPath, int numOfClass, int numOfVector, int dimensionOfVec, double sigma, double C, char* strOutputPath);
	void SaveData(char *strOutPath);
	void LoadData(char *strInputPath);
	void SaveSVMParameter(char *strOutPath);
	void LoadSVMParameter(char *strInputPath);
	void TrainData(char *strOutputPath);
	int  Classify(float *xVec, int n);
	void FreeMemory();
};

#endif //MULTICLASSSVM__H__